package org.jeecg.modules.basic.demo.bed.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.basic.demo.apartment.entity.LwgyApartmentCustom;
import org.jeecg.modules.basic.demo.apartment.entity.LwgyBaseApartment;
import org.jeecg.modules.basic.demo.bed.entity.*;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.basic.demo.school.entity.LwgyBaseSchool;
import org.jeecg.modules.basic.demo.student.entity.LwgyBaseStudent;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @Description: 床位信息
 * @Author: jeecg-boot
 * @Date:   2021-01-20
 * @Version: V1.0
 */
public interface ILwgyBaseBedService extends IService<LwgyBaseBed> {

    IPage<LwgyBaseBed> queryPageListCustom(Page<LwgyBaseBed> page, QueryWrapper<LwgyBaseBed> queryWrapper);

    IPage<LwgyBaseBed> queryPageListHotelInfo(Page<LwgyBaseBed> page, QueryWrapper<LwgyBaseBed> queryWrapper);

    IPage<LwgyBaseBed> queryPageListAllBed(Page<LwgyBaseBed> page, QueryWrapper<LwgyBaseBed> queryWrapper);

    IPage<LwgyBaseBed> queryPageListCustomScore(Page<LwgyBaseBed> page, String scaleBatches,QueryWrapper<LwgyBaseBed> queryWrapper);

    IPage<LwgyBedAssignment> queryPageNullBed(Page<LwgyBedAssignment> page, QueryWrapper<LwgyBedAssignment> queryWrapper);

    List<Map<String, String>> listByPid(String pid);

    Map<String,String> getApartmentInfo(Set<LwgyBaseApartment> set, String id, String name, String type, Map<String, String> map, ImportLwgyBeds importLwgyBed);

    void create_bed(LwgyApartmentCustom lwgyApartmentCustom);

    List<String> getRoleById(String id);

    IPage<LwgyBaseBed> queryPageFacultyBeds(Page<LwgyBaseBed> page, LwgyBaseSchool lwgyBaseSchool);

    List<LwgyBaseBed> queryBedByScInfoId(Page<LwgyBaseBed>page,LwgyBaseApartment lwgyBaseApartment, String studentSex);

    List<LwgyBaseBed> getBedIdList(String apartmentId, String apartmentType);

//    void update(List<LwgyBaseBed> bedList);
    List<LwgyBaseBed> getBedListByStuId2(String[] split);
    List<LwgyBaseBed> getBedListByStuId(String[] split);

    LwgyBaseStudent getStuInfoByBedId(String bedId);

    IPage<LwgyBaseStudent> getStuInfoByRoomId(Page<LwgyBaseStudent> page,String roomId);

    List<ImportLwgyBedsA> outBedXls(LwgyBaseBed lwgyBed);

    IPage<LwgyBaseBed> queryHolidayPageListCustom(Page<LwgyBaseBed> page, QueryWrapper<LwgyBaseBed> queryWrapper);

    void updateStu(String admin_id, List<String> lists);

    /** 查询所有的床位,无分页 */
    List<BedAndApart> getAllBeds(QueryWrapper<BedAndApart> queryWrapper);

    List<LwgyBaseBed> findChangeRoom();
    List<LwgyBaseSchool> getYear();

    /** 查询所有的床位 */
    List<LwgyBaseBed> getHotelData(QueryWrapper<LwgyBaseBed> queryWrapper);

    /** 禁用床位 */
    void disableBed(String ids);

    /** 激活床位 */
    void activateBed(String ids);
}
